import { DataBindSpy } from './directives/directives';
import { InfiniteScrollModule } from 'angular2-infinite-scroll';
import { ConfirmModule } from './component/primeng/confirm/confirm.module';
import { FlexLayoutModule } from '@angular/flex-layout';
import { KeyboardModule } from './component/primeng/keyboard/keyboard.module';
import { RemarkModule } from './component/primeng/remark/remark.module';
import { FormsModule } from '@angular/forms';
import { MaterialModule } from '@angular/material';
import { CommonModule } from '@angular/common';
import { StoreName, OrderByParam, StringEllipsis, CurrencySymbol, PrintModSupFor, PrintComboSupFor, StringLimit, WaiterNames } from './pipes/business.pipes';
import { SyncDataService } from './service/sync.service';
import { SystemService } from './service/system.service';
import { MessageBoxService } from './component/messageBoxService';
import { NavigateService } from './service/navigate.service';
import { Router } from '@angular/router';
import { NgModule, ModuleWithProviders } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

@NgModule({
    imports: [
        CommonModule,
        FormsModule,
        MaterialModule,
        RemarkModule,
        KeyboardModule,
        FlexLayoutModule,
        ConfirmModule,
        InfiniteScrollModule,
        BrowserAnimationsModule
    ],
    declarations: [
        StoreName,
        OrderByParam,
        StringEllipsis,
        CurrencySymbol,
        PrintModSupFor,
        PrintComboSupFor,
        DataBindSpy,
        StringLimit,
        WaiterNames
    ],
    exports: [
        CommonModule,
        FormsModule,
        MaterialModule,
        RemarkModule,
        KeyboardModule,
        StoreName,
        OrderByParam,
        StringEllipsis,
        CurrencySymbol,
        FlexLayoutModule,
        ConfirmModule,
        InfiniteScrollModule,
        PrintModSupFor,
        PrintComboSupFor,
        DataBindSpy,
        StringLimit,
        WaiterNames
    ]
})
export class SharedModule { }